home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Geos / GEOS128 / GeosD81 / CS72.D81 / zero fix (.txt) < prev   
Encoding:
Commodore BASIC  |  2019-04-13  |  1.4 KB  |  81 lines

  1. 10 REM *** ZERO FIX ***
  2. 20 REM
  3. 30 REM TERRY VAN CAMP  12/15/88
  4. 40 REM
  5. 50 OPEN 15,8,15
  6. 60 PRINT CHR$(147)
  7. 70 PRINT"INSERT DISK"
  8. 80 PRINT"CONTAINING PRINT DRIVER ONLY!"
  9. 90 PRINT
  10. 100 PRINT"PRESS 'RETURN' WHEN READY"
  11. 110 GET A$:IF A$="" THEN 110
  12. 120 PRINT CHR$(147)
  13. 130 PRINT "WORKING... PLEASE WAIT"
  14. 140 OPEN 2,8,2,"0:*,U,R"
  15. 150 GOSUB 1000
  16. 160 PS=30976:M=PS
  17. 170 GET#2,D$:IF D$="" THEN D$=CHR$(0)
  18. 180 D=ASC(D$)
  19. 190 POKE M,D:M=M+1
  20. 200 IF ST=0 THEN 170
  21. 210 IF ST<>64 THEN 2000
  22. 220 CLOSE2
  23. 230 PE=M
  24. 300 REM *** DO SEARCH ***
  25. 310 S$=(CHR$(160)+CHR$(0)+CHR$(177)+CHR$(2)+CHR$(240))
  26. 320 FOR M=PS TO PE
  27. 330 D=PEEK(M)
  28. 340 IF D<>160 THEN 370
  29. 350 C$=(CHR$(D)+CHR$(PEEK(M+1))+CHR$(PEEK(M+2))+CHR$(PEEK(M+3))+CHR$(PEEK(M+4)))
  30. 360 IF C$=S$ THEN 400
  31. 370 NEXT M
  32. 380 GOTO 2000
  33. 390 REM *** DO PATCH ***
  34. 400 PRINT CHR$(147)
  35. 410 PRINT:PRINT"ENTER NUMBER TO REPLACE ZERO"
  36. 420 INPUT N:IF N>255 THEN 420
  37. 430 PRINT CHR$(147):PRINT
  38. 440 PRINT "WORKING... PLEASE WAIT"
  39. 450 JA=M+6+PEEK(M+5)
  40. 460 JH=INT(JA/256)
  41. 470 JL=JA-JH*256
  42. 480 PA=PE+1
  43. 490 PH=INT(PA/256)
  44. 500 PL=PA-PH*256
  45. 510 POKE(M+2),76
  46. 520 POKE(M+3),PL
  47. 530 POKE(M+4),PH
  48. 540 POKE(M+5),234
  49. 550 FOR X=0 TO 15
  50. 560 READ D
  51. 570 POKE(PA+X),D
  52. 580 NEXT X
  53. 590 POKE(PA+5),JL
  54. 600 POKE(PA+6),JH
  55. 610 POKE(PA+8),N
  56. 615 RA=M+6
  57. 620 RH=INT(RA/256)
  58. 625 RL=RA-RH*256
  59. 630 POKE(PA+14),RL
  60. 635 POKE(PA+15),RH
  61. 640 REM *** SAVE PATCHED FILE ***
  62. 650 OPEN 2,8,2,"@0:*,U,W"
  63. 660 GOSUB 1000
  64. 670 PE=PE+16
  65. 680 FOR M=PS TO PE
  66. 690 D= PEEK(M):D$=CHR$(D)
  67. 700 PRINT#2,D$;
  68. 710 NEXT M
  69. 720 CLOSE2
  70. 730 PRINT CHR$(147):PRINT
  71. 740 PRINT:PRINT "PATCH COMPLETED"
  72. 750 CLOSE15:END
  73. 1000 INPUT#15,EN,EM$,ET,ES
  74. 1010 IF EN>0 THEN PRINT EN,EM$,ET,ES:GOTO 2000
  75. 1020 RETURN
  76. 2000 CLOSE2:CLOSE15
  77. 2010 PRINT:PRINT "PATCH FAILED!"
  78. 2020 END
  79. 3000 DATA 177,2,208,3,76,234,234
  80. 3010 DATA 201,234,208,2,169,0,76,2,2
  81.